home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple WWDC 1996
/
WWDC96_1996 (CD).toast
/
Technology Materials
/
MacOS 8 Resources
/
Developer Tools
/
Mac OS 8 Interfaces & Libraries
/
Interfaces
/
IDLIncludes
/
DeskBus.idl
< prev
next >
Wrap
Text File
|
1996-05-01
|
3KB
|
82 lines
/*
File: DeskBus.idl
Contains: Apple Desktop Bus (ADB) Interfaces.
Version: Technology: System 7.5
Release: Universal Interfaces 3.0d3 on Copland DR1
Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
Bugs?: If you find a problem with this file, send the file and version
information (from above) and the problem description to:
Internet: apple.bugs@applelink.apple.com
AppleLink: APPLE.BUGS
*/
#ifndef __DESKBUS_IDL__
#define __DESKBUS_IDL__
#include <somobj.idl>
#include <somcls.idl>
#ifndef __TYPES_IDL__
#include <Types.idl>
#endif
#ifndef __MIXEDMODE_IDL__
#include <MixedMode.idl>
#endif
#ifdef __SOMIDL__
#if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
typedef SInt8 ADBAddress;
typedef OpaquePtr ADBCompletionProcPtr;
typedef OpaquePtr ADBCompletionUPP;
typedef OpaquePtr ADBDeviceDriverProcPtr;
typedef OpaquePtr ADBDeviceDriverUPP;
typedef OpaquePtr ADBServiceRoutineProcPtr;
typedef OpaquePtr ADBServiceRoutineUPP;
typedef OpaquePtr ADBInitProcPtr;
typedef OpaquePtr ADBInitUPP;
typedef SOMLargeStruct ADBDataBlock; /* Derived from a struct of 10 bytes in size */
typedef OpaquePtr ADBDBlkPtr; /* Substituted OpaquePtr for ``ADBDataBlock*'' */
typedef SOMLargeStruct ADBSetInfoBlock; /* Derived from a struct of 8 bytes in size */
typedef OpaquePtr ADBSInfoPtr; /* Substituted OpaquePtr for ``ADBSetInfoBlock*'' */
/* ADBOpBlock is only used when calling ADBOp from 68k assembly code */
typedef SOMLargeStruct ADBOpBlock; /* Derived from a struct of 12 bytes in size */
typedef OpaquePtr ADBOpBPtr; /* Substituted OpaquePtr for ``ADBOpBlock*'' */
/*
ADBOp has a different interface for 68k assembly than for everything else
for 68k assembly the interface is
#pragma parameter __D0 ADBOp(__A0,__D0)
OSErr ADBOp( ADBOpBlock * pb, short commandNum );
*/
/*
IMPORTANT NOTE:
"Inside Macintosh: Devices" documents the completion routine for ADBOp will be called with
four parameters using 68k register based calling conventions, specifically the completion routine
passed in should be of type ADBServiceRoutineProcPtr. However, when upp types were first added
to this interface file, the type ADBCompletionUPP was mistakenly used for the second parameter
to ADBOp. Since applications have shipped using completion routines of type ADBCompletionUPP,
the mistake cannot be corrected.
The only difference between ADBServiceRoutineUPP and ADBCompletionUPP is the former takes an extra
argument which is a pointer to itself, fortunately not needed for PowerPC code.
For compatibility with existing 68k code, when an ADBOp completion routine is called,
68k register A1 will point to the completion routine, as documented in Inside Mac.
*/
#endif
#endif /* __SOMIDL__ */
#endif /* __DESKBUS_IDL__ */